The present invention relates to updating a group of network nodes with replacement software and, more particularly, to a method and system for updating a group of multifunction printers (MFPs) with replacement software wherein the method and system improve network performance and the predictability of a completion time for installation of the replacement software.
Network nodes, such as MFPs, are becoming increasingly sophisticated. This increased sophistication has brought with it the need for more complex software, which is oftentimes firmware. The added complexity of MFP software has led to a higher incidence of coding errors, called software bugs, and more frequent software upgrades that enhance the feature set of MFPs. To remove software bugs and enable software upgrades, software updates are regularly distributed and installed on MFPs.
Various schemes have been used to update large groups of MFPs that require replacement software. In these schemes, a software update package instructing the MFPs how to update their software is typically distributed from a software update server over a network to the MFPs and installed immediately upon receipt. The timing of distribution of the software update package is generally determined by an update management application executing on the software update server.
A significant technical challenge that arises in updating the software of a large group of MFPs is how to avoid resource oversubscription. Typically, the size of an MFP software update package is on the order of tens of megabytes. When a software update server attempts to distribute a software update package to a large number of MFPs around the some time, the network may become congested. When this happens, the distribution process is slowed and other applications competing for network bandwidth may be starved. Moreover, the processing resources of the software update server may become oversubscribed, further delaying the distribution. In extreme cases, the network or the software update server may even crash.
In addition to starving other applications and risking network or server outages, attempts to distribute a software update package to a large group of MFPs around the same time can render meaningless a software update installation time chosen by a network administrator. Network administrators often want software updates to be installed on MFPs during “off hours” when the usage level of the MFPs is minimal, and therefore start distribution of the software update package during these “off hours”. However, if delivery of the software update package is substantially delayed due to resource oversubscription, actual installation may creep into hours of peak usage.
In an attempt to avoid resource oversubscription problems, some update management applications allow network administrators to stagger distribution of software updates to an MFP group. In these applications, software update packages are distributed and installed over “threads” and a network administrator selects how many threads run in parallel. When installation is completed on the first parallel group of threads, the management application starts distribution on the next parallel group of threads, and so on. However, the burden to choose an optimum number of threads to run in parallel is on the network administrator. If the network administrator chooses a number that is too large, the update process may be plagued by resource oversubscription problems. If the network administrator chooses a number that is too small, the update process may take too long and installation may extend into hours of peak MFP usage.